Célula de memória (computação)
Tipos de memórias de computadores e armazenamento de dados |
---|
Geral
|
Volátil |
Histórica
|
Não volátil |
|
|
Óptico
|
Em desenvolvimento
|
Histórica
|
A célula de memória é o bloco de construção fundamental da memória de computador. A célula de memória é um circuito eletrônico que armazena um bit de informação binária e deve ser configurada para armazenar uma lógica 1 (nível de alta tensão) e resetada para armazenar uma lógica 0 (nível de baixa tensão). Seu valor é mantido/armazenado até que seja alterado pelo processo de configurar/resetar. O valor na célula de memória pode ser acessado o lendo.
Ao longo da história da computação, diferentes arquiteturas de células de memória foram usadas, incluindo a de memória de núcleo e a de memória de bolha. Hoje, a arquitetura de célula de memória mais comum é a memória de metal-óxido-semicondutor MOS, que consiste em células de memória de metal-óxido-semicondutor (MOS). A memória de acesso aleatório (RAM) moderna usa transistores de efeito de campo (FETs) de metal-óxido-semicondutor (MOS) (MOSFETs) como flip-flops, juntamente com capacitores de metal-óxido-semicondutor (MOS) para certos tipos de memória de acesso aleatório (RAM).
A célula de memória da memória estática de acesso aleatório (SRAM, RAM estática) é um tipo de circuito flip-flop, normalmente implementado usando transistores de efeito de campo de metal-óxido-semicondutor (MOSFETs). Estes requerem energia muito baixa para manter o valor armazenado quando não estão sendo acessados. Um segundo tipo, o da memória dinâmica de acesso aleatório (DRAM, RAM dinâmica), é baseado em capacitores de metal-óxido-semicondutor (MOS). Carregar e descarregar um capacitor pode armazenar um "1" ou um "0" na célula. No entanto, a carga neste capacitor vazará lentamente e deve ser atualizada periodicamente. Devido a esse processo de atualização, a memória dinâmica de acesso aleatório (DRAM) consome mais energia. No entanto, a memória dinâmica de acesso aleatório (DRAM) pode atingir maiores densidades de armazenamento.
Por outro lado, a maioria das memórias não voláteis (NVM) é baseada em arquiteturas de células de memória de porta flutuante. As tecnologias de memória não volátil, incluindo a memória programável apagável somente leitura (EPROM), a memória programável apagável eletricamente somente leitura (EEPROM) e a memória flash, usam células de memória de porta flutuante, que são baseadas em transistores de efeito de campo de metal-óxido-semicondutor (MOSFETs) de porta flutuante.
Descrição
[editar | editar código-fonte]A célula de memória é o bloco de construção fundamental da memória. Ela pode ser implementada usando diferentes tecnologias, como a bipolar, a de metal-óxido-semicondutor (MOS) e a de outros dispositivos semicondutores. Também pode ser construída a partir de material magnético, como núcleos de ferrite ou bolhas magnéticas.[1] Independentemente da tecnologia de implementação utilizada, a finalidade da célula de memória binária é sempre a mesma. Ela armazena um bit de informação binária que pode ser acessada pela leitura da célula e deve ser configurada para armazenar um 1 e redefinida para armazenar um 0.[2]
Importância
[editar | editar código-fonte]Os circuitos lógicos sem células de memória ou caminhos de realimentação são chamados combinacionais, seus valores de saída dependem apenas do valor atual de seus valores de entrada. Eles não têm memória. Mas a memória é um elemento-chave dos sistemas digitais. Em computadores, ela permite armazenar tanto programas como dados e células de memória também são usadas para armazenamento temporário da saída de circuitos combinacionais para serem usados posteriormente por sistemas digitais. Os circuitos lógicos que usam células de memória são chamados de circuitos sequenciais. Sua saída depende não apenas do valor presente de suas entradas, mas também do estado anterior do circuito, determinado pelos valores armazenados em suas células de memória. Esses circuitos requerem um gerador de temporização (ou clock) para sua operação.[3]
A memória de computador usada na maioria dos sistemas de computador contemporâneos é construída principalmente a partir de células da memória dinâmica de acesso aleatório (DRAM); como o esquema é muito menor que o da memória estática de acesso aleatório (SRAM), ela pode ser mais compactada, resultando em memória mais barata e com maior capacidade. Como a célula de memória da memória dinâmica de acesso aleatório (DRAM) armazena seu valor como a carga de um capacitor e há problemas de vazamento de corrente, seu valor deve ser constantemente reescrito. Esse é um dos motivos que tornam as células da memória dinâmica de acesso aleatório (DRAM) mais lentas que as células da memória estática de acesso aleatório (SRAM, RAM estática) maiores, que têm seu valor sempre disponível. Essa é a razão pela qual a memória estática de acesso aleatório (SRAM) é usada para cache no chip incluído em chips de microprocessadores modernos.[4]
História
[editar | editar código-fonte]Em 11 de dezembro de 1946, Freddie Williams solicitou uma patente em seu dispositivo de armazenamento de tubo de raios catódicos (CRT) (tubo de Williams) com 128 palavras de 40 bits. Ele estava operacional em 1947 e é considerado a primeira implementação prática de memória de acesso aleatório (RAM).[5] Naquele ano, os primeiros pedidos de patente para memória de núcleo magnético foram apresentados por Frederick Viehe.[6][7] A memória de núcleo magnético prática foi desenvolvida por An Wang, em 1948, e melhorada por Jay Forrester e Jan A. Rajchman, no início da década de 1950, antes de ser comercializada com o computador Whirlwind em 1953.[8] Ken Olsen também contribuiu para o seu desenvolvimento.[9]
A memória de semicondutores começou no início dos anos 1960 com células de memória bipolares, feitas de transistores bipolares. Embora melhorasse o desempenho, não podia competir com o preço mais baixo da memória de núcleo magnético.[10]
Células de memória de metal-óxido-semicondutor (MOS)
[editar | editar código-fonte]A invenção do transistor de efeito de campo de metal-óxido-semicondutor (MOSFET), também conhecido como transistor de metal-óxido-semicondutor (MOS), por Mohamed M. Atalla e Dawon Kahng nos laboratórios da Bell em 1959,[11] permitiu o uso prático de transistores de metal-óxido-semicondutor (MOS) como elementos de armazenamento de células de memória, uma função anteriormente servida por núcleos magnéticos.[12] As primeiras células de memória modernas foram introduzidas em 1964, quando John Schmidt projetou a primeira memória estática de acesso aleatório (SRAM) de metal-óxido-semicondutor (MOS) de canal p de 64 bits (PMOS).[13][14]
A memória estática de acesso aleatório (SRAM) normalmente possui células de seis transistores, enquanto a memória dinâmica de acesso aleatório (DRAM) normalmente possui células de transistor único.[15][13] Em 1965, a calculadora eletrônica Toscal BC-1411 da Toshiba usou uma forma de memória dinâmica de acesso aleatório (DRAM) bipolar capacitiva, armazenando dados de 180 bits em células de memória discretas, consistindo de transistores e capacitores bipolares de germânio.[16][17] A tecnologia de metal-óxido-semicondutor (MOS) é a base para a memória dinâmica de acesso aleatório (DRAM) moderna. Em 1966, o Dr. Robert H. Dennard no centro de pesquisa Thomas J. Watson da IBM estava trabalhando na memória de metal-óxido-semicondutor (MOS). Ao examinar as características da tecnologia de metal-óxido-semicondutor (MOS), ele descobriu que era capaz de construir capacitores e que armazenar uma carga ou nenhuma carga no capacitor de metal-óxido-semicondutor (MOS) poderia representar o 1 e o 0 de um bit, enquanto o transistor de metal-óxido-semicondutor (MOS) poderia controlar a escrita da carga no capacitor de metal-óxido-semicondutor (MOS). Isso levou ao desenvolvimento de uma célula de memória de memória dinâmica de acesso aleatório (DRAM) de transistor único.[18] Em 1967, Dennard registrou uma patente para uma célula de memória de memória dinâmica de acesso aleatório (DRAM) de transistor único, baseada na tecnologia de metal-óxido-semicondutor (MOS).[19]
A primeira memória estática de acesso aleatório (SRAM) bipolar de 64 bits comercial foi lançada pela Intel em 1969 com a lógica transistor-transistor (TTL) de Schottky 3101. Um ano depois, foi lançado o primeiro chip de circuito integrado de memória dinâmica de acesso aleatório (DRAM), o Intel 1103, baseado na tecnologia de metal-óxido-semicondutor (MOS). Em 1972, bateu os recordes anteriores em vendas de memória de semicondutores.[20] Os chips de memória dinâmica de acesso aleatório (DRAM), no início da década de 1970, tinham células de três transistores, antes que as células de transistor único se tornassem padrão, desde meados da década de 1970.[15][13]
A memória de metal-óxido-semicondutor complementar (CMOS) foi comercializada pela corporação de rádio da América (RCA), que lançou um chip de memória estática de acesso aleatório (SRAM) de metal-óxido-semicondutor complementar (CMOS) de 288 bits em 1968.[21] A memória de metal-óxido-semicondutor complementar (CMOS) foi inicialmente mais lenta do que a memória de metal-óxido-semicondutor de tipo n (NMOS), que foi mais amplamente utilizada por computadores na década de 1970.[22] Em 1978, a Hitachi introduziu o processo de metal-óxido-semicondutor complementar (CMOS) de poço duplo, com seu chip de memória HM6147 (memória estática de acesso aleatório - SRAM - de 4 kilobits - kb), fabricado com um processo de 3 micrômetros (µm). O chip HM6147 foi capaz de igualar o desempenho do chip de memória de metal-óxido-semicondutor de tipo n (NMOS) mais rápido da época, enquanto também consumia significativamente menos energia. Com desempenho comparável e muito menos consumo de energia, o processo de metal-óxido-semicondutor complementar (CMOS) de poço duplo eventualmente ultrapassou o de metal-óxido-semicondutor de tipo n (NMOS) como o processo de fabricação de semicondutores mais comum para memória de computador na década de 1980.[22]
Os dois tipos mais comuns de células de memória de memória dinâmica de acesso aleatório (DRAM), desde a década de 1980, são as células de capacitores de trincheira e as células de capacitores empilhados.[23] Células de capacitores de trincheira são onde buracos (trincheiras) são feitos em um substrato de silício, cujas paredes laterais são usadas como uma célula de memória, enquanto células de capacitores empilhados são a forma mais antiga de memória tridimensional (memória 3D), onde as células de memória são empilhadas verticalmente em uma estrutura celular tridimensional.[24] Ambos os tipos foram lançados em 1984, quando a Hitachi introduziu a memória de capacitor de trincheira e a Fujitsu introduziu a memória de capacitor empilhado.[23]
Células de memória de metal-óxido-semicondutor (MOS) de porta flutuante
[editar | editar código-fonte]O transistor de efeito de campo de metal-óxido-semicondutor (MOSFET) de porta flutuante (FGMOS) foi inventado por Dawon Kahng e Simon Sze nos laboratórios da Bell em 1967.[25] Eles propuseram o conceito de células de memória de porta flutuante, usando transistores de efeito de campo de metal-óxido-semicondutor (MOSFET) de porta flutuante (FGMOS), que poderiam ser usados para produzir memória somente leitura (ROM) reprogramável.[26] Células de memória de porta flutuante mais tarde se tornaram a base para tecnologias de memória não volátil (NVM), incluindo a memória somente leitura programável apagável (EPROM), a memória somente leitura programável apagável eletricamente (EEPROM) e a memória flash.[27]
A memória flash foi inventada por Fujio Masuoka na Toshiba em 1980.[28][29] Masuoka e seus colegas apresentaram a invenção flash NOR em 1984[30] e, depois, a flash NAND em 1987.[31] A memória flash de célula multinível (MLC) foi introduzida pela NEC, que demonstrou células de nível quádruplo em um chip flash de 64 mebibit (Mb) armazenando 2 bits por célula em 1996.[23] A V-NAND 3D, onde as células de memória flash são empilhadas verticalmente usando a tecnologia flash de captura de carga (CTP) 3D, foi anunciada pela Toshiba em 2007[32] e fabricada pela Eletrônicos Samsung em 2013.[33][34]
Implementação
[editar | editar código-fonte]Os esquemas a seguir detalham as três implementações mais usadas para células de memória:
- A célula de memória dinâmica de acesso aleatório (DRAM);
- A célula de memória estática de acesso aleatório (SRAM);
- Flip-flops como o J/K mostrado abaixo.
Operação
[editar | editar código-fonte]Célula de memória de memória dinâmica de acesso aleatório (DRAM)
[editar | editar código-fonte]Armazenamento
[editar | editar código-fonte]O elemento de armazenamento da célula de memória da memória dinâmica de acesso aleatório (DRAM) é o capacitor rotulado (4) no diagrama acima. A carga armazenada no capacitor se degrada ao longo do tempo, portanto, seu valor deve ser atualizado (lido e reescrito) periodicamente. O transistor nMOS (3) atua como uma porta para permitir leitura ou escrita quando aberto ou armazenamento quando fechado.[35]
Leitura
[editar | editar código-fonte]Para ler, a linha de palavra (2) aciona uma lógica 1 (tensão alta) na porta do transistor nMOS (3) que o torna condutor e a carga armazenada no capacitor (4) é então transferida para a linha de bits (1) . A linha de bits terá uma capacitância parasita (5) que drenará parte da carga e retardará o processo de leitura. A capacitância da linha de bits determinará o tamanho necessário do capacitor de armazenamento (4). É uma troca. Se o capacitor de armazenamento for muito pequeno, a tensão da linha de bits levaria muito tempo para aumentar ou nem mesmo ultrapassaria o limite necessário para os amplificadores no final da linha de bits. Como o processo de leitura degrada a carga no capacitor de armazenamento (4), seu valor é reescrito após cada leitura.[36]
Escrita
[editar | editar código-fonte]O processo de escrita é o mais fácil, o valor lógico 1 (alta tensão) ou lógico 0 (baixa tensão) desejado é direcionado para a linha de bits. A linha de palavra ativa o transistor nMOS (3) o conectando ao capacitor de armazenamento (4). O único problema é o manter aberto o tempo suficiente para garantir que o capacitor esteja totalmente carregado ou descarregado antes de desligar o transistor nMOS (3).[36]
Célula de memória de memória estática de acesso aleatório (SRAM)
[editar | editar código-fonte]Armazenamento
[editar | editar código-fonte]O princípio de funcionamento da célula de memória de memória estática de acesso aleatório (SRAM) pode ser mais fácil de entender se os transistores M1 a M4 forem desenhados como portas lógicas. Dessa forma, fica claro que, em sua essência, o armazenamento de células é construído usando dois inversores de acoplamento cruzado. Este loop simples cria um circuito bi-estável. Um 1 lógico na entrada do primeiro inversor se transforma em 0 em sua saída e é alimentado no segundo inversor que transforma esse 0 lógico de volta em um 1 lógico que retorna o mesmo valor para a entrada do primeiro inversor. Isso cria um estado estável que não muda com o tempo. Da mesma forma, o outro estado estável do circuito é ter um 0 lógico na entrada do primeiro inversor. Após ser invertido duas vezes, ele também retornará o mesmo valor.[37] Portanto, existem apenas dois estados estáveis em que o circuito pode estar:
- = 0 e = 1
- = 1 e = 0
Leitura
[editar | editar código-fonte]Para ler o conteúdo da célula de memória armazenada no loop, os transistores M5 e M6 devem estar ligados. quando eles recebem tensão para seus portões da linha de palavras (), eles se tornam condutores e assim os valores e são transmitidos para a linha de bits () e para seu complemento ().[37] Finalmente, esses valores são amplificados no final das linhas de bits.[37]
Escrita
[editar | editar código-fonte]O processo de escrita é semelhante, a diferença é que agora o novo valor que será armazenado na célula de memória é direcionado para a linha de bits () e o invertido para seu complemento (). Os próximos transistores M5 e M6 são abertos conduzindo um 1 lógico (voltagem alta) na linha de palavras (). Isso conecta efetivamente as linhas de bits ao loop do inversor estável. Há duas possibilidades:
- Se o valor do loop for o mesmo que o novo valor acionado, não haverá alteração;
- se o valor do loop for diferente do novo valor acionado existem dois valores conflitantes, para que a tensão nas linhas de bits sobrescreva a saída dos inversores, o tamanho dos transistores M5 e M6 deve ser maior que o dos transistores M1-M4. Isso permite que mais corrente flua através dos primeiros e, portanto, inclina a tensão na direção do novo valor; em algum ponto, o loop amplificará esse valor intermediário para um trilho completo.[37]
Flip-flop
[editar | editar código-fonte]O flip-flop tem muitas implementações diferentes, seu elemento de armazenamento é geralmente um ferrolho (latch) que consiste em um loop de porta NAND ou um loop de porta NOR com portas adicionais usadas para implementar o clock. Seu valor está sempre disponível para leitura como saída. O valor permanece armazenado até que seja alterado através do processo de definição ou redefinição. Flip-flops são normalmente implementados usando transistores de efeito de campo de metal-óxido-semicondutor (MOSFETs).
Porta flutuante
[editar | editar código-fonte]As células de memória de porta flutuante, baseadas em transistores de efeito de campo de metal-óxido-semicondutor (MOSFETs) de porta flutuante, são usadas para a maioria das tecnologias de memória não volátil (NVM), incluindo a memória programável apagável somente leitura (EPROM), a memória programável apagável eletricamente somente leitura (EEPROM) e a memória flash.[27] Segundo R. Bez e A. Pirovano: {{quote|Uma célula de memória de porta flutuante é basicamente um transistor de metal-óxido-semicondutor (MOS) com uma porta completamente cercada por dielétricos (fig. 1.2), a porta flutuante (FG), e eletricamente governada por uma porta de controle acoplada capacitiva (CG). Sendo isolado eletricamente, a porta flutuante (FG) atua como eletrodo de armazenamento para o dispositivo de célula. A carga injetada na porta flutuante (FG) é mantida lá, permitindo a modulação da tensão de limiar "aparente" (ou seja, VT visto da porta de controle (CG)) do transistor da célula.[27]
Ver também
[editar | editar código-fonte]Referências
[editar | editar código-fonte]- ↑ D. Tang, Denny; Lee, Yuan-Jen (2010). Memória magnética: fundamentos e tecnologia (em inglês). [S.l.]: Cambridge University Press. p. 91. ISBN 978-1139484497. Consultado em 13 de dezembro de 2015
- ↑ Fletcher, William (1980). Uma abordagem de engenharia para o esquema digital (em inglês). [S.l.]: Prentice-Hall. p. 283. ISBN 0-13-277699-5
- ↑ Circuitos microeletrônicos (em inglês) 2ª ed. [S.l.]: Holt, Rinehart and Winston, Inc. 1987. p. 883. ISBN 0-03-007328-6
- ↑ «A pergunta técnica: o cache, como funciona?». PC World Fr (em francês). Arquivado do original em 30 de março de 2014
- ↑ O’Regan, Gerard (2013). Gigantes da computação: um compêndio de pioneiros selecionados e essenciais (em inglês). [S.l.]: Springer. p. 267. ISBN 978-1447153405. Consultado em 13 de dezembro de 2015
- ↑ Reilly, Edwin D. (2003). Marcos em ciência da computação e tecnologia da informação (em inglês). [S.l.]: Grupo editorial Greenwood. p. 164. ISBN 9781573565219
- ↑ W. Pugh, Emerson; R. Johnson, Lyle; H. Palmer, John (1991). Sistemas 360 e primeiros 370 da IBM (em inglês). [S.l.: s.n.] p. 706. ISBN 0262161230. Consultado em 9 de dezembro de 2015
- ↑ «1953: Computador Whirlwind lança memória de núcleo». Museu da história do computador (em inglês). Consultado em 2 de agosto de 2019
- ↑ Taylor, Alan (18 de junho de 1979). Computerworld: Mass. Town se tornou a capital do computador (em inglês). [S.l.]: IDG Enterprise. p. 25
- ↑ «1966: RAMs de semicondutores atendem às necessidades de armazenamento de alta velocidade». Museu da história do computador (em inglês). Consultado em 19 de junho de 2019
- ↑ «1960 - Transistor de metal óxido semicondutor (MOS) demonstrado». Museu da história do computador. O motor de silício (em inglês)
- ↑ «Transistores - uma visão geral». ScienceDirect (em inglês). Consultado em 8 de agosto de 2019
- ↑ a b c «1970: Semicondutores competem com núcleos magnéticos». Museu da história do computador (em inglês). Consultado em 19 de junho de 2019
- ↑ Projeto de estado sólido - vol. 6 (em inglês). [S.l.]: Horizon house. 1965
- ↑ a b «Final dos anos 1960: Primórdios da memória de MOS» (PDF). Museu de história de semicondutores do Japão (em inglês). 23 de janeiro de 2019. Consultado em 27 de junho de 2019
- ↑ «Folha de especificações para Toshiba "TOSCAL" BC-1411». Museu web da calculadora antiga (em inglês). Consultado em 8 de maio de 2018. Cópia arquivada em 3 de julho de 2017
- ↑ «Calculadora de mesa Toshiba "Toscal" BC-1411» (em inglês). Cópia arquivada em 20 de maio de 2007
- ↑ «DRAM». IBM100 (em inglês). IBM. 9 de agosto de 2017. Consultado em 20 de setembro de 2019
- ↑ «Robert Dennard». Encyclopædia Britannica (em inglês). Consultado em 8 de julho de 2019
- ↑ Kent, Allen; Williams, James G (6 de janeiro de 1992). Enciclopédia de microcomputadores: volume 9 - Linguagem de programação de ícones para sistemas baseados em conhecimento: técnicas de APL (em inglês). [S.l.]: CRC press. 131 páginas. ISBN 9780824727086
- ↑ «1963: A configuração do circuito de MOS complementar é inventada». Museu da história do computador (em inglês). Consultado em 6 de julho de 2019
- ↑ a b «1978: SRAM de CMOS rápida de poço duplo (Hitachi)» (PDF). Museu de história de semicondutores do Japão (em inglês). Consultado em 5 de julho de 2019. Cópia arquivada (PDF) em 5 de julho de 2019
- ↑ a b c «Memória». Tecnologia de semicondutores on-line (STOL) (em inglês). Consultado em 25 de junho de 2019
- ↑ «Década de 1980: A capacidade da DRAM aumenta, a mudança para o CMOS avança e o Japão domina o mercado» (PDF). Museu de história de semicondutores do Japão (em inglês). Consultado em 19 de julho de 2019
- ↑ D. Kahng e S. M. Sze, "Uma porta flutuante e sua aplicação em dispositivos de memória, "O jornal técnico do sistema Bell", volume 46, número. 4, 1967, páginas 1288–1295 (em inglês)
- ↑ «1971: ROM de semicondutor reutilizável introduzido». Museu da história do computador (em inglês). Consultado em 19 de junho de 2019
- ↑ a b c Bez, R.; Pirovano, A. (2019). Avanços em memória não volátil e tecnologia de armazenamento (em inglês). [S.l.]: Editora Woodhead. ISBN 9780081025857
- ↑ Fulford, Benjamin (24 de junho de 2002). «Herói desconhecido». Forbes (em inglês). Consultado em 18 de março de 2008. Cópia arquivada em 3 de março de 2008
- ↑ US 4531203
- ↑ «Toshiba: inventor da memória flash». Toshiba (em inglês). Consultado em 20 de junho de 2019. Arquivado do original em 20 de junho de 2019
- ↑ Masuoka, F.; Momodomi, M.; Iwata, Y.; Shirota, R. (1987). «Nova EPROM'" de ultra alta densidade e EEPROM flash com célula de estrutura NAND». Encontro de dispositivos eletrônicos, 1987 internacional. IEDM 1987 (em inglês). IEEE. doi:10.1109/IEDM.1987.191485
- ↑ «Toshiba anuncia nova tecnologia flash NAND "3D"». Engadget (em inglês). 12 de junho de 2007. Consultado em 10 de julho de 2019
- ↑ «Samsung apresenta o primeiro SSD baseado em V-NAND 3D do mundo para aplicativos corporativos». Site global de semicondutores da Samsung (em inglês). Arquivado do original em 15 de abril de 2021
- ↑ Clarke, Peter. «Samsung confirma 24 camadas em NAND 3D». EE times (em inglês)
- ↑ Jacob, Bruce; Ng, Spencer; Wang, David (28 de julho de 2010). Sistemas de memória: Cache, DRAM, disco (em inglês). [S.l.]: Morgan Kaufmann. 355 páginas. ISBN 9780080553849
- ↑ a b Siddiqi, Muzaffer A. (19 de dezembro de 2012). RAM dinâmica: avanços tecnológicos (em inglês). [S.l.]: CRC press. 10 páginas. ISBN 9781439893739
- ↑ a b c d Li, Hai; Chen, Yiran (19 de abril de 2016). Projeto de memória não volátil: magnético, resistivo e mudança de fase (em inglês). [S.l.]: CRC press. pp. 6, 7. ISBN 9781439807460